package com.kuns.subject.application.convert;

import com.kuns.subject.application.dto.SubjectCategoryDTO;
import com.kuns.subject.domian.entity.SubjectCategoryBO;
import com.kuns.subject.infra.basic.entity.SubjectCategory;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

@Mapper
public interface SubjectCategoryDTOConverter {
    /**
     * 接口编程
     *
     * 通过反射为该接口生成一个实现类，并返回其实例。
     * 这样在使用时，开发者可以通过接口 SubjectCategoryConverter 进行调用，而不需要关心具体的实现细节。
     */
    SubjectCategoryDTOConverter INSTANCE = Mappers.getMapper(SubjectCategoryDTOConverter.class);

    /**
     * convertBoToCategory 方法定义了如何将 SubjectCategoryBO 对象转换为 SubjectCategory 对象。
     * 具体的转换逻辑会在编译时自动生成，不需要手动实现。
     * @param subjectCategoryDTO
     * @return
     */
    SubjectCategoryBO convertDtoToCategory(SubjectCategoryDTO subjectCategoryDTO);

    List<SubjectCategoryDTO> convertBoListToDtoList(List<SubjectCategoryBO> subjectCategoryBOList);

}
